package modelos.daos;

import controladores.ManejadorBaseDatos;
import modelos.pojos.Empleado;
import modelos.pojos.FacturaHabitacion;
import java.sql.*;
import java.util.List;

public class FacturaHabitacionDAO {

    private static Connection con;
    public static List<Empleado> resultados;

    public static void crear(FacturaHabitacion facturaHabitacion) throws SQLException, Exception {

        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con = mbd.getConexion();

        if (con == null) {
            throw new SQLException("Ha ocurrido un error al intentar conectarse con la base de datos");
        }

        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("Insert Into FacturaHabitacion values(?,?,?,?,?)");
            pst.setString(1, null);
            pst.setInt(2, facturaHabitacion.getReservaHabitacion().getId());
            pst.setString(3, null);
            pst.setString(4, null);
            pst.setString(5, facturaHabitacion.getEstado() + "");
            pst.executeUpdate();


        } finally {

            if (pst != null) {
                pst.close();
            }
        }
    }

    public static void cerrar(FacturaHabitacion facturaHabitacion) throws SQLException, Exception {

        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con = mbd.getConexion();

        if (con == null) {
            throw new SQLException("Ha ocurrido un error al intentar conectarse con la base de datos");
        }

        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("Update FacturaHabitacion, CheckInHabitacion Set fechaFacturacion=?,valor=?,FacturaHabitacion.estado='f', CheckInHabitacion.estado='t' Where FacturaHabitacion.idReservaHabitacion=? and CheckInHabitacion.idReservaHabitacion=?;");


            pst.setTimestamp(1, new Timestamp(facturaHabitacion.getFechaFacturacion().getTime()));
            pst.setDouble(2, facturaHabitacion.getValor());
            pst.setInt(3, facturaHabitacion.getReservaHabitacion().getId());
            pst.setInt(4, facturaHabitacion.getReservaHabitacion().getId());
            pst.executeUpdate();


        } finally {

            if (pst != null) {
                pst.close();
            }
        }
    }
}
